<?php   

define(HOST_ERROR_MSG,'由于系统原因，帐号信息将延时更新');



function vlogin($url,$data){ // 模拟登录获取Cookie函数    
    $curl = curl_init(); // 启动一个CURL会话    
	$useragent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11';    //洲际访问识别浏览器！！！！
	if(strpos($url,'m.htinns.com')!==false){
	   $useragent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; zh-cn)";
	}
	
	if(strpos($url,'m.7daysinn.cn')!==false){
	   $useragent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.5 Safari/537.36";
	}
	
	
	$http_array=array('Expect:');
	if(strpos($url,'booking.com')!==false){
	   $http_array[]='Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3';
	}
	if(strpos($url,'jumeirah.com')!==false){
	    $http_array[]='Accept: application/json, text/javascript, */*; q=0.01';
		$http_array[]='Content-Type:application/json; charset=UTF-8';
	}
	if(strpos($url,'agoda.com')!==false){
	    //$http_array[]='Accept:text/html,application/json,application/xml;q=0.9,*/*;q=0.8';
		//$http_array[]='Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3';
	}
	
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址                
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在    
    curl_setopt($curl, CURLOPT_USERAGENT, $useragent); // 模拟用户使用的浏览器    
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求    
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包    
    curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称    
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息    
    curl_setopt($curl, CURLOPT_TIMEOUT, 90); // 设置超时限制防止死循环    
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
	curl_setopt($curl, CURLOPT_HTTPHEADER, $http_array);    
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    
    $tmpInfo = @curl_exec($curl); // 执行操作    
    if (curl_errno($curl)) {    
        echo HOST_ERROR_MSG;
		curl_error_message($curl);
    }  
    curl_close($curl); // 关闭CURL会话   
    return $tmpInfo; // 返回数据    
}    

 //返回最后重定向。 
function vloginRedirect($url,$data){ // 模拟登录获取Cookie函数    
    $curl = curl_init(); // 启动一个CURL会话    
	$useragent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11';    //洲际访问识别浏览器！！！！
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址                
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在    
    curl_setopt($curl, CURLOPT_USERAGENT, $useragent); // 模拟用户使用的浏览器    
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求    
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包    
    curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称    
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息    
    curl_setopt($curl, CURLOPT_TIMEOUT, 90); // 设置超时限制防止死循环    
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容    
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    
	curl_setopt($curl, CURLOPT_REFERER, 'https://www.marriott.com/signIn.mi'); // 获取的信息以文件流的形式返回    
	
    $tmpInfo = @curl_exec($curl); // 执行操作
	//file_put_contents('1.html',$tmpInfo);
	$info=curl_getinfo($curl);    print_r($info); 
    if (curl_errno($curl)) {    
      // echo 'Errno'.curl_error($curl);  
    }  
    curl_close($curl); // 关闭CURL会话   
    return $info['url']; // 返回数据    
}  



 //返回最后重定向。 
function vloginLocation($url,$data){ // 模拟登录获取Cookie函数    
    $curl = curl_init(); // 启动一个CURL会话    
	$useragent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11';    //洲际访问识别浏览器！！！！
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址                
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在    
    curl_setopt($curl, CURLOPT_USERAGENT, $useragent); // 模拟用户使用的浏览器    
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求    
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包    
    curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称    
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息    
    curl_setopt($curl, CURLOPT_TIMEOUT, 90); // 设置超时限制防止死循环    
    curl_setopt($curl, CURLOPT_HEADER, 1); // 显示返回的Header区域内容    
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    
	 
	
    $tmpInfo = @curl_exec($curl); // 执行操作
	
	$pattern="/Location:(.*?)[\n\r\t ]+Content-Language/s";
	preg_match($pattern,$tmpInfo,$match);
	 
    if (curl_errno($curl)) {    
      // echo 'Errno'.curl_error($curl);  
    }  
    curl_close($curl); // 关闭CURL会话   
    return trim($match[1]); // 返回数据    
}    
   
   
     
function vget($url){ // 模拟获取内容函数    
    $curl = curl_init(); // 启动一个CURL会话    
	$useragent='Mozilla/5.0 (X11; Linux x86_64; rv:34.0) Gecko/20100101 Firefox/34.0';    //洲际访问识别浏览器！！！！
	if(strpos($url,'m.htinns.com')!==false){
	   $useragent="Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; zh-cn)";
	}
	if(strpos($url,'m.7daysinn.cn')!==false){
	   $useragent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.5 Safari/537.36";
	}
    $http_array[]='Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
	//特殊处理美国航空的 http_header
	if(strpos($url,'booking.com')!==false||strpos($url,'order.zuche.com')!==false){
	   $http_array[]='Accept-Language:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3';
	}
	 
	curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址                
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在    
    curl_setopt($curl, CURLOPT_USERAGENT, $useragent); // 模拟用户使用的浏览器    
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    
    curl_setopt($curl, CURLOPT_HTTPGET, 1); // 发送一个常规的Post请求    
    curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS['cookie_file']); // 存放Cookie信息的文件名称    
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息    
    curl_setopt($curl, CURLOPT_TIMEOUT, 90); // 设置超时限制防止死循环    
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容    
	curl_setopt($curl, CURLOPT_HTTPHEADER, $http_array);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    
    $tmpInfo = @curl_exec($curl); // 执行操作    
    if (curl_errno($curl)) {    
	     echo HOST_ERROR_MSG;
		 curl_error_message($curl);
		 
        echo 'Errno'.curl_error($curl);    
    }    
    curl_close($curl); // 关闭CURL会话
    return $tmpInfo; // 返回数据    
}    
   
function vpost($url,$data){ // 模拟提交数据函数    
    $curl = curl_init(); // 启动一个CURL会话    
	$useragent='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11';    //洲际访问识别浏览器！！！！
	
	$http_array=array('Expect:');
	//特殊处理美国航空的 http_header
	if(strpos($url,'www.aa.com')!==false){
	   $http_array[]='content-type:text/plain;charset=utf-8';
	}
	
    curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址                
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查    
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 从证书中检查SSL加密算法是否存在    
    curl_setopt($curl, CURLOPT_USERAGENT, $useragent); // 模拟用户使用的浏览器    
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转    
    curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer    
    curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求    
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包    
    curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息    
    curl_setopt($curl, CURLOPT_TIMEOUT, 90); // 设置超时限制防止死循环    
    curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容    
	curl_setopt($curl, CURLOPT_HTTPHEADER, $http_array);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回    
    $tmpInfo = @curl_exec($curl); // 执行操作    
	
    if (curl_errno($curl)) {    
       //echo 'Errno'.curl_error($curl);    
    }    
    curl_close($curl); // 关键CURL会话    
    return $tmpInfo; // 返回数据    
}    
   
function delcookie($cookie_file){ // 删除Cookie函数        
   
    if(is_file($cookie_file))
	{
      @unlink($cookie_file); // 执行删除
	}
}    
 

//对curl执行出错，做日志处理, 上传到planpoint。
function curl_error_message($curl){
    $error=curl_error($curl);
	$info=curl_getinfo($curl);
	$url=$info['url'];
	$date=date("Y-m-d H:i:s");
	$serverhost=$_SERVER['HTTP_HOST'];
	if(strpos($serverhost,'planpoint')!==false){
	    $serverhost='PP';
	}
	$message=$date.'　|　Url: '.$url. '　|　Error:'.$error.'　|　SerHost:'.$serverhost; //echo $message;
	$message=urlencode($message);
	//echo  $message;
	$url="https://www.planpoint.cn/members/extra/getmessage.php?action=getpointmsg&message=".$message;
	@file_get_contents($url);
}


?>  

